package com.gitee.linmt.controller;

import com.gitee.linmt.entity.Result;
import com.gitee.linmt.entity.ResultType;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * ApplicationController.
 *
 * @author <a href="mailto:lin-mt@outlook.com">lin-mt</a>
 */
@RestController
public class ApplicationController {
    
    /**
     * 需要拥有 ROLE_admin 权限才能访问的接口，此处设置权限时，如果是hasAnyRole，不需要以 ROLE_ 开头，在验证是否有权限的时候， 如果没有前缀，会自动加上前缀然后进行验证.
     *
     * @return Result
     */
    @GetMapping("/admin")
    @PreAuthorize("hasAnyRole('admin')")
    public Result<Object> admin() {
        return Result.getInstance(ResultType.SUCCESS).setMessage("This is admin index.");
    }
    
    /**
     * 需要拥有 ROLE_user 权限才能访问的接口.
     *
     * @return Result
     */
    @GetMapping("/user")
    @PreAuthorize("hasAnyRole('user')")
    public Result<Object> user() {
        return Result.getInstance(ResultType.SUCCESS).setMessage("This is user index.");
    }
    
}
